﻿
//................................................
function EditUsers(id) {

    //Ần chức năng Delete khi thao tác trên user Đăng nhập
    if ($("#UserLoginID").val() == id) {
        $('#btnDelete1').attr("disabled", true);
        $('#btnDelete2').attr("disabled", true);
    } else {
        $('#btnDelete1').attr("disabled", false);
        $('#btnDelete2').attr("disabled", false);
    }
    
    //Ẩn một số trường cần thiết
    document.getElementById("ID").disabled = true;
    $('#Password').attr("disabled", true);
    $('#RePassword').attr("disabled", true);
    $('#UserName').attr("disabled", true);


    //Xóa thông điệp cũ khi xử lý tới user mới
    DoClearMessage();
    document.getElementById("IsExistUserName").innerHTML = "";
    document.getElementById("EmailMessage").innerHTML = "";
    document.getElementById("RePasswordMessage").innerHTML = "";
    //end

    $("#PasswordChange").val("");
    $("#RePasswordChange").val("");

    var url = basePath + 'Users/UsersEditAjax/' + id;

    $.getJSON(url, null, function (data) {
        $("#ID").val(data.ID);
        $("#UserName").val(data.UserName);
        $("#FullName").val(data.FullName);
        //$("#Password").val(data.Password);
        $("#Department").val(data.Department);
        $("#JobTitle").val(data.JobTitle);
        if (data.BirthDayIsNull == true) {
            $("#BirthDay").val("");
        }
        else {
            $("#BirthDay").val(ConvertDateToString(data.BirthDay));
        }
        
        $("#Email").val(data.Email);
        $("#Mobile").val(data.Mobile);

        if (data.Sex == true) {
            document.getElementById("Nam").checked = true;
        } else {
            document.getElementById("Nu").checked = true;
        }

        //$("#RePassword").val(data.Password);
        $("#UserNameForResetPassword").val(data.UserName);

        if (data.IsAdministrator == true) {
            document.getElementById("IsAdministratorBox").checked = true;
        } else {
            document.getElementById("IsAdministratorBox").checked = false;
        }

        if (data.IsActive == true) {
            document.getElementById("IsActiveBox").checked = true;
        } else {
            document.getElementById("IsActiveBox").checked = false;
        }

        //unCheck mọi checkbox chức vụ
        for (var i = 0; i < document.forms[0].length; i++) {
            var element = document.forms[0].elements[i];
            if (element.name == 'chucvukiem' && element.type == 'checkbox') {
                element.checked = false;
            }
        }
        //refesh lại các chức vụ đang kiêm cho nhân viên hiện hành

        if (data.IdJobTitleList != null) {
            for (var j = 0; j < data.IdJobTitleList.length; j++) {
                for (var z = 0; z < document.forms[0].length; z++) {
                    var item = document.forms[0].elements[z];
                    if (item.name == 'chucvukiem' && item.type == 'checkbox' && item.id == data.IdJobTitleList[j]) {
                        item.checked = true;
                        break; //mới thêm
                    }
                }
            }
        }
    });
}

//........................................................

function DoClearMessage() {
    //Xóa thông điệp cũ khi xử lý tới user mới
    if (document.getElementById("MessageChangePassword") != null) {
        document.getElementById("MessageChangePassword").innerHTML = "";
    }
    if (document.getElementById("MessageCreateUser") != null) {
        document.getElementById("MessageCreateUser").innerHTML = "";
    }
    if (document.getElementById("MessageEditUser") != null) {
        document.getElementById("MessageEditUser").innerHTML = "";
    }
    //end
}

//.........................................................

function DoNew() {
    document.getElementById("Password").removeAttribute("disabled");
    document.getElementById("RePassword").removeAttribute("disabled");
    document.getElementById("UserName").removeAttribute("disabled");

    //Xóa thông điệp cũ khi xử lý tới user mới
    DoClearMessage();
    document.getElementById("IsExistUserName").innerHTML = "";
    document.getElementById("EmailMessage").innerHTML = "";
    document.getElementById("PasswordMessage").innerHTML = "";
    document.getElementById("RePasswordMessage").innerHTML = "";
    //end

    $("#ID").val(-1);
    $("#UserName").val("");
    $("#FullName").val("");
    $("#Email").val("");
    $("#Mobile").val("");
    $("#Password").val("");
    $("#RePassword").val("");
    $("#Department").val(0);
    $("#JobTitle").val(0);
    $("#BirthDay").val("");
    
    document.getElementById("IsAdministratorBox").checked = false;
    document.getElementById("IsActiveBox").checked = true;

    //unCheck mọi checkbox chức vụ
    for (var i = 0; i < document.forms[0].length; i++) {
        var element = document.forms[0].elements[i];
        if (element.name == 'chucvukiem' && element.type == 'checkbox') {
            element.checked = false;
        }
    }


    $("#UserName").focus();
}

//..................................................

function DoReset() {

    //Xóa thông điệp cũ khi xử lý tới user mới
    DoClearMessage();
    //end
    
    var id = $("#ID").val();
    if (id == -1 || id == "") {
        DoNew();
    }
    else {
        EditUsers(id);
    }
}

//................................................

function DoDelete() {
    var userID = document.forms[0].ID.value;
    var userName = document.forms[0].UserName.value;
    if (userID == -1) {
        alert('Chọn Người dùng muốn xóa !');
    }
    else {
        var note = "Bạn chắc chắn muốn xóa Người dùng  '" + userName + "' ?";
        if (confirm(note)) {
            window.location.href = basePath + "Users/Delete?userID=" + userID;
        }
    }
}

//...............................

function doResetPassword() {
    $("#UserID").val($("#ID").val());
    var selectedUsserID = $("#ID").val();
    if (selectedUsserID == -1) {
        alert('Chọn Người dùng muốn thay đổi Mật khẩu !');
    }
    else {

        var val = document.forms[0].PasswordChange.value;
        //var length = val.length;
        if (val == "") {
            //alert("Password không đựơc trống !");
            document.getElementById("PasswordChangeMessage").innerHTML = "Nhập mật khẩu !";
            //document.forms[0].PasswordChange.value = "";
            document.forms[0].RePasswordChange.value = "";
            document.forms[0].PasswordChange.focus();
        }
        else {

            if (document.forms[0].PasswordChange.value != document.forms[0].RePasswordChange.value) {
               // alert("Password không khớp nhau, làm ơn nhập lại !");
                document.getElementById("RePasswordChangeMessage").innerHTML = "Mật khẩu chưa khớp !";
                //document.forms[0].PasswordChange.value = "";
                document.forms[0].RePasswordChange.value = "";
                document.forms[0].RePasswordChange.focus();
            }
            else {
                document.forms[0].action = basePath + 'Users/ChangePassword/';
                document.forms[0].method = "post";
                document.forms[0].submit();
            }
        }
    }
}


function doResetPasswordDemoProject() {
    alert("Xin lỗi, bản demo không thể thay đổi mật khẩu.");
}
//.....................................................

function DoCreateOrEdit() {   
    
    //Kiểm tra định dạng Email
    if (($("#Email").val() != "") && (emailCheck($("#Email").val()) == false)) {
        document.getElementById("EmailMessage").innerHTML = "Email sai định dạng !";
        $("#Email").focus();
        return;
    }   

    //Tạo mới một User (Create)
    if (document.forms[0].ID.value == -1) {
        //Khi tạo mới user mới Kiểm tra
        
        
        //Kiểm tra dữ liệu nhập trống
        if (IsEmpty($("#UserName").val())) {
            //alert("Tên đăng nhập không được trống !");
            document.getElementById("IsExistUserName").innerHTML = "Tên đăng nhập không trống !";
            $("#UserName").focus();
            return;
        }

        //Kiểm tra định dạng UserName (chỉ cho phép nhập ký tự và ký số)
        if (!ValidUserName($("#UserName").val())) {
            //alert("Tên đăng nhập không được chứa ký tự đặc biệt !");
            document.getElementById("IsExistUserName").innerHTML = "Không đúng định dạng (chỉ chuỗi ký tự và ký số) !";
            $("#UserName").focus();
            return;
        }

        //Kiểm tra username đã tồn tại
        var url = basePath + 'Users/IsExistUser?userName=' + $("#UserName").val();
        $.getJSON(url, null, function(data) {
            if (data == true) {
                document.getElementById("IsExistUserName").innerHTML = "Tên đăng nhập đã tồn tại";
                $("#UserName").focus();
                return;
            }
        });


        //Kiểm tra password không đựoc trống
        if (IsEmpty($("#Password").val())) {
            //alert("Mật khẩu không được trống !");
            document.getElementById("PasswordMessage").innerHTML = "Nhập mật khẩu !";
            $("#Password").focus();
            return;
        }

        //Kiểm tra password trùng khớp
        if ($("#Password").val() != $("#RePassword").val()) {
            //alert("Password không khớp nhau, làm ơn nhập lại !");
            document.getElementById("RePasswordMessage").innerHTML = "Mật khẩu chưa khớp!";
            $("#RePassword").val("");
            $("RePassword").focus();
            return;
        }

        document.forms[0].action = basePath + 'Users/Create/';

    }
    //Thay đổi thông tin user (Edit)
    else {
        document.forms[0].action = basePath + 'Users/Edit/';
    }

    //Lấy thông tin giới tính
    if (document.forms[0].Nam.checked == true) { //là nam
        $("#Sex").val(true);
    }
    else {
        $("#Sex").val(false);
    }


    if (document.forms[0].IsAdministratorBox.checked == true) {
        document.forms[0].IsAdministrator.value = true;
    }
    else
        document.forms[0].IsAdministrator.value = false;


    if (document.forms[0].IsActiveBox.checked == true) {
        document.forms[0].IsActive.value = true;
    }
    else
        document.forms[0].IsActive.value = false;

    $("#UserID").val($("#ID").val());


    //Lấy thông tin chức vụ đang kiêm của nhân viên hiện hành
    for (var i = 0; i < document.forms[0].length; i++) {
        var element = document.forms[0].elements[i];
        if (element.name == 'chucvukiem' && element.type == 'checkbox' && element.checked) {
            document.getElementById("ChucVuKiemString").value += "|" + element.id;
        }
    }
    
    document.forms[0].method = "post";
    document.forms[0].submit();
}

//.......................................................

function doCheckUsernameIsExist() {

    if ($('#ID').val() == -1) {// chỉ kiểm tra khi create user

        //Kiểm tra trống
        //    if (IsEmpty($("#UserName").val())) {
        //        //alert("Tên đăng nhập không được trống !");
        //        document.getElementById("IsExistUserName").innerHTML = "Nhập Username !";
        //        $("#UserName").focus();
        //        return;
        //    }

        //Kiểm tra định dạng UserName (chỉ cho phép nhập ký tự và ký số)
        if (!ValidUserName($("#UserName").val())) {
            //alert("Tên đăng nhập không được chứa ký tự đặc biệt !");
            document.getElementById("IsExistUserName").innerHTML = "Không đúng định dạng!";
            $("#UserName").focus();
            return;
        }

        //Kiểm tra tồn tại
        var url = basePath + 'Users/IsExistUser?userName=' + $("#UserName").val();
        $.getJSON(url, null, function(data) {
            if (data == true) {
                document.getElementById("IsExistUserName").innerHTML = "Tên đăng nhập đã tồn tại!";
                //$("#UserName").focus();
            }
            else {
                document.getElementById("IsExistUserName").innerHTML = "";
            }
        });
    }

}
//...................................................

function doCheckEmail() {

    if (($("#Email").val() != "") && (emailCheck($("#Email").val()) == false)) {
        document.getElementById("EmailMessage").innerHTML = "Email không đúng định dạng!";

        //$("#Email").focus();
    }
    else {
        document.getElementById("EmailMessage").innerHTML = "";
    }
}


//...................................................

function doCheckPassword() {
    if ($('#ID').val() == -1) {// chỉ kiểm tra khi create user

        if ($("#Password").val() != " ") {
            document.getElementById("PasswordMessage").innerHTML = "";
            return;
        }
    }
}

//...................................................

function doCheckRetypePassword() {
    if ($('#ID').val() == -1) {// chỉ kiểm tra khi create user

        if ($("#Password").val() != " " && $("#RePassword").val() != $("#Password").val()) {
            document.getElementById("RePasswordMessage").innerHTML = "Mật khẩu chưa khớp !";
            //$("#RePassword").focus();
        }
        else {
            document.getElementById("RePasswordMessage").innerHTML = "";
        }
    }
}

//...................................................

function doOnBlurPasswordChange() {
    if ($("#PasswordChange").val() != " ") {
        document.getElementById("PasswordChangeMessage").innerHTML = "";
    }
}
//...................................................
function doOnBlurRePasswordChange() {
    if ($("#PasswordChange").val() != " " && $("#RePasswordChange").val() != $("#PasswordChange").val()) {
        document.getElementById("RePasswordChangeMessage").innerHTML = "Mật khẩu chưa khớp !";
    }
    else {
        document.getElementById("RePasswordChangeMessage").innerHTML = "";
    }
}


//...................................................

function DoSearch() {
    var search = $("#TieuChiSearch").val();
    var value = $("#GiaTriSearch").val();

    document.forms[0].action = basePath + "Users/List?TimKiem=" + search + "&GiaTri=" + value;
    document.forms[0].method = "post";
    document.forms[0].submit();

//    document.forms[0].action = basePath + "Users/List";
//    document.forms[0].method = "post";
//    document.forms[0].submit();
}


//...................................................

//Các hàm hỗ trợ
//function ValidUserName(name) {
//    name = name.replace(/(^\s*)|(\s*$)/g);
//    var alphaExp = /^[0-9a-zA-Z]+$/;
//    if (name.match(alphaExp)) {
//        return true;
//    } else {
//        return false;
//    }
//}

//function IsEmpty(value) {
//    var isEmpty = false;
//    if (value.length == 0) {
//        isEmpty = true;
//    }
//    return isEmpty;
//}

//function emailCheck(email) {
//    var filter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
//    if (!filter.test(email)) {
//        email.focus();
//        return false;
//    }

//}

//...............................................................